package com.ftg.learn.chapter07;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * spring整合的问题比较多
 *   1 : xml 较多... 10来个  spring-ygh.xml spring-kjx.xml 臃肿
 *   2 ： spring 整合三方框架  ， 还有配置文件 ....
 *   3 : ssm ssh ssi 怎么配。。。。。
 *   4 ：版本迭代 ，maven 很来重
 * 自研框架 ：
 *  1 ： jdbc 自己封装框架 orm
 *  2  : servlet controller框架
 *  3 : 原有用户的流失
 *
 *  run执行流程
 *
 * 1、推断应用的类型是普通的项目还是Web项目
 *
 * 2、查找并加载所有可用初始化器 ， 设置到initializers属性中
 *
 * 3、找出所有的应用程序监听器，设置到listeners属性中
 *
 * 4、推断并设置main方法的定义类，找到运行的主类
 *
 * Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类，
 * 并对其进行加载，这些自动配置类都是以AutoConfiguration结尾来命名的，它实际上就是一个JavaConfig形式的Spring容器配置类，
 * 通过@Bean导入到Spring容器中，以Properties结尾命名的类是和配置文件进行绑定的。它能通过这些以Properties结尾命名的类中取得在
 * 全局配置文件中配置的属性，我们可以通过修改配置文件对应的属性来修改自动配置的默认值，来完成自定义配置
 *
 *
 *
 * 脚手架 : --> springboot 搭建 构建  整合
 *  SpringBootApplication
 *     EnableAutoConfiguration  : 自动化配置 (三方框架与springboot 整合的)
 *     ComponentScan            : 包类扫描的
 *     SpringBootConfiguration  : 基本配置
 * @author kangjx
 * @date 2022/11/9
 */
@SpringBootApplication
public class LearnSpringboot {

    public static void main(String[] args) {
//        springboot 类加载原理
//        springboot 工作流程
        SpringApplication.run(LearnSpringboot.class ,args);
    }

}
